﻿/*****************************************************************
 * @file     sig_measure.c
 * @brief 输入信号经过一个反向电压可调(通过PB8输出pwm波调节)的比较器后
 *        再输入TIMER0_CH0通道(PA8)测量
 *        用DMA搬运测量的周期和占空比
 *****************************************************************
 */

#include "sig_measure.h"
#include "sys.h"
#include "debug.h"
#include "dma.h"


uint16_t freq, duty;
bool isSigRising = false; /*!< 信号出现上升沿 */


/**
 * @brief 初始化信号测量模块(自动初始化)
 */
void SigMeasureInit(void)
{
    /* 初始化定时器0 测量波形 */
    Timer0Config();
    Timer0GpioConfig();
    Dma0ConfigForTimer0(&freq, &duty);

    /* 初始化定时器3 调节比较器反向电压 */
    Timer3Config();
    Timer3GpioConfig();
}
INIT_BSP_EXPORT(SigMeasureInit);

/**
 * @brief 获取信号是否出现上升沿
 * @return true 出现上升沿 false 未出现
 */
bool SigMeasure_GetRising(void)
{
    bool ret = isSigRising;
    isSigRising = false;
    return ret;
}

void exti_5_9_callbake_it(uint32_t exti_inter)
{
    if(EXTI_8 == exti_inter)
    {
        isSigRising = true;
    }
}
